/*
 * Cookie Plug-in
 * 
 * This plug in automatically gets all the cookies for this site and adds them
 * to the post_params.  Cookies are loaded only on initialization.  The
 * refreshCookies function can be called to update the post_params.  The cookies
 * will override any other post params with the same name.
 */

var SWFUpload;
if (typeof(SWFUpload) === "function") {
  SWFUpload.prototype.initSettings = function (oldInitSettings) {
    return function () {
      if (typeof(oldInitSettings) === "function") {
        oldInitSettings.call(this);
      }

      // The false parameter must be sent since SWFUpload has not initialzed at
      // this point
      this.refreshCookies(false);
    };
  }(SWFUpload.prototype.initSettings);

  // refreshes the post_params and updates SWFUpload.  The sendToFlash
  // parameters is optional and defaults to True
  SWFUpload.prototype.refreshCookies = function (sendToFlash) {
    if (sendToFlash === undefined) {
      sendToFlash = true;
    }
    sendToFlash = !!sendToFlash;

    // Get the post_params object
    var postParams = this.settings.post_params;

    // Get the cookies
    var i, cookieArray = document.cookie.split(';'), caLength = cookieArray.length, c, eqIndex, name, value;
    for (i = 0; i < caLength; i++) {
      c = cookieArray[i];

      // Left Trim spaces
      while (c.charAt(0) === " ") {
        c = c.substring(1, c.length);
      }
      eqIndex = c.indexOf("=");
      if (eqIndex > 0) {
        name = c.substring(0, eqIndex);
        value = c.substring(eqIndex + 1);
        postParams[name] = value;
      }
    }

    if (sendToFlash) {
      this.setPostParams(postParams);
    }
  };

}
